
# 来源 https://pymupdf.readthedocs.io/en/latest/pymupdf4llm/index.html
# pip install pymupdf4llm
# convert the document to markdown
import pymupdf4llm
import pathlib
import re


input_pdf = "test-pdf2.pdf"
output_md = 'output-pdf-llm.md'

input_pdf="/Users/emery/Downloads/语料素材/1-概览/test-pdf2.pdf"
output_md = 'output-pdf-llm.md'




# 使用更多参数来优化输出，但不包含图片
md_text = pymupdf4llm.to_markdown(
    input_pdf,
    write_images=False,  # 不保存和引用图片
    force_text=True,  # 即使有重叠的图像也生成文本
    table_strategy='lines',  # 使用更宽松的表格检测策略
    margins=(50, 50, 50, 50),  # 设置页面边距，避免页眉页脚
    page_chunks=True  # 这将返回一个字典列表，每个页面一个字典
)

def clean_markdown(text):
    # 移除Markdown图片语法
    text = re.sub(r'!\[.*?\]\(.*?\)', '', text)
    # 移除HTML图片标签
    text = re.sub(r'<img.*?>', '', text)
    # 移除空行
    text = re.sub(r'\n\s*\n', '\n\n', text)
    return text

# 如果page_chunks=True，md_text将是一个列表
if isinstance(md_text, list):
    full_md_text = ""
    for page in md_text:
        # 添加页面分隔符
        page_number = page['metadata'].get('page_number')
        if page_number:
            full_md_text += f"\n\n--- Page {page_number} ---\n\n"
        #
        # 添加表格信息（如果有）
        if page['tables']:
            full_md_text += f"Tables found: {len(page['tables'])}\n\n"
        #
        # 添加页面文本（清理后的）
        full_md_text += clean_markdown(page['text'])
else:
    full_md_text = clean_markdown(md_text)

# 写入文件
pathlib.Path(output_md).write_text(full_md_text, encoding='utf-8')

print(f"Markdown has been saved to {output_md}")


# 写入文件






md_text = pymupdf4llm.to_markdown(input_pdf)

# Write the text to some file in UTF8-encoding
import pathlib
pathlib.Path(output_md  ).write_bytes(md_text.encode())






# convert the document to markdown
import pymupdf4llm


input_pdf="test-pdf2.pdf"
output_md = 'output-pdf-llm.md'

md_text = pymupdf4llm.to_markdown(input_pdf)

# Write the text to some file in UTF8-encoding
import pathlib
pathlib.Path(output_md  ).write_bytes(md_text.encode())
#
